package com.cheejee.goodscenter.service;

import javax.validation.constraints.NotNull;

import org.springframework.validation.annotation.Validated;

import com.cheejee.goodscenter.module.dto.SkuSnapshotDto;
import com.github.pagehelper.PageInfo;

/**
 * SKU 快照，在SKU更新后会将SKU信息存快照并把版本号+1。
 * @author CARRY
 * @Date 2020年11月3日上午1:15:59
 */
@Validated
public interface SkuSnapshotService {

	/**
	 * 按条件查询sku快照，多个条件AND连接
	 *
	 * @param goodsId
	 * @param skuId
	 * @param version
	 * @return
	 */
	PageInfo<SkuSnapshotDto> querySkuSnapshot(Long goodsId, Long skuId, Integer version, Integer pageNum, Integer pageSize);
	
	SkuSnapshotDto querySkuSnapshotById(@NotNull(message = "SKU快照Id不能为空")Long id);
	
	int addSkuSnapshot(SkuSnapshotDto skuSnapshot);
	
	/**
	 * 将SKU信息存入快照，返回快照ID
	 *
	 * @param skuId
	 * @return 添加成功返回快照ID，失败返回0
	 */
	Long addSkuSnapshot(@NotNull(message = "SKU ID不能为空")Long skuId);
	
	int deleteSkuSnapshot(@NotNull(message = "SKU快照Id不能为空")Long id);
}
